package com.alinesno.cloud.initializr.starter.common.mapper;

import java.util.List;

import com.alinesno.cloud.common.facade.mapper.repository.IBaseJpaMapper;
import com.alinesno.cloud.initializr.starter.codegen.entity.GenTableColumn;

/**
 * 业务字段 数据层
 * 
 * @author ruoyi
 */
public interface GenTableColumnMapper extends IBaseJpaMapper<GenTableColumn> {
	/**
	 * 根据表名称查询列信息
	 * 
	 * @param tableName 表名称
	 * @return 列信息
	 */
	public List<GenTableColumn> selectDbTableColumnsByName(String tableName);

	/**
	 * 根据表名称查询列信息
	 *
	 * @param tableName   表名称
	 * @param tableSchema 库名称
	 * @return 列信息
	 */
	public List<GenTableColumn> selectDbTableColumnsByNameAndSchema(String tableName, String tableSchema);

	/**
	 * 查询业务字段列表
	 * 
	 * @param talbleId 业务字段信息
	 * @return 业务字段集合
	 */
	public List<GenTableColumn> selectGenTableColumnListByTableId(Long talbleId);

	/**
	 * 新增业务字段
	 * 
	 * @param genTableColumn 业务字段信息
	 * @return 结果
	 */
	public int insertGenTableColumn(GenTableColumn genTableColumn);

	/**
	 * 修改业务字段
	 * 
	 * @param genTableColumn 业务字段信息
	 * @return 结果
	 */
	public int updateGenTableColumn(GenTableColumn genTableColumn);

	/**
	 * 删除业务字段
	 * 
	 * @param genTableColumns 列数据
	 * @return 结果
	 */
	public int deleteGenTableColumns(List<GenTableColumn> genTableColumns);

	/**
	 * 批量删除业务字段
	 * 
	 * @param ids 需要删除的数据ID
	 * @return 结果
	 */
	public int deleteGenTableColumnByIds(Long[] ids);

	void delByTableSchema(String dbName);

	public List<GenTableColumn> selectGenTableColumnListByTableId(GenTableColumn genTableColumn);
}
